#ifndef DRAW_UNIT_H_H_H_H_
#define DRAW_UNIT_H_H_H_H_
class CKCurvePoint;
class CKCurve;
class CKRenderContext;
namespace Gui
{
	class DrawUnit
	{
	public:
		DrawUnit();
		virtual ~DrawUnit();
	};

	class Point : public DrawUnit
	{
	public:
		Point(void);
	private:
	CKCurvePoint* cpt;
	};

	class LineSegment : public DrawUnit
	{
	public:
		LineSegment();
	public:
		CKCurve* getLine()const{return pLine;}
	private:
		CKCurve* pLine;
	};

	class DrawManager 
	{
	public:
		DrawManager();
		~DrawManager();

	public:
		static DrawManager* _instance;
		static DrawManager* Instance();

	public:

		void Draw();

		void addPoint(Point* p);
		void remvoePoint(Point* p);
		void remvoePoint(int index);


	public:

		CKRenderContext* LineContext;

	private:
		void _renderLine(LineSegment*);
        
		std::vector<LineSegment*> _pointList;
		std::vector<LineSegment*>::iterator pointItor;

		//CKCurve*  

	};
}

#endif